package com.pazl.check.api.dto;

import java.io.Serializable;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.Pattern;

import org.hibernate.validator.group.GroupSequenceProvider;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.pazl.check.api.provider.RenterInfoGroupSequenceProvider;

/**
 * 承租人信息
 * 
 * @author chenyn
 *
 *         2020年5月11日
 */
@GroupSequenceProvider(RenterInfoGroupSequenceProvider.class)
public class RenterInfoDto implements Serializable{

	/**
	 * 
	 */
	private static final long serialVersionUID = -4505496893028975415L;
	
	@NotEmpty(message = "name missing.")
	private String name;// 姓名
	
	@NotEmpty(message = "cellphone missing.")
	private String cellphone;// 手机号码
	
	@JsonProperty("IDtype")
	@NotEmpty(message = "IDtype missing...")
	@Pattern(regexp="1",message="IDtype error,only 【1】")
	private String IDtype;// 证件种类
	
	@JsonProperty("IDnum")
	@NotEmpty(message = "IDnum missing...")
	private String IDnum;// 证件号码
	
	@NotEmpty(message = "birthday missing.")
	private String birthday;// 出生日期
	
	@NotEmpty(message = "sex missing.")
	@Pattern(regexp="1|2",message="sex error,only 【1|2】")
	private String sex;// 性别
	
	@NotEmpty(message = "marriage missing.")
	@Pattern(regexp="1|2|3|4",message="marriage error,only 【1|2|3|4】")
	private String marriage;// 婚姻状况
	
	@NotEmpty(message = "education missing.")
	@Pattern(regexp="1|2|3|4|5|6|7",message="education error,only 【1|2|3|4|5|6|7】")
	private String education;// 教育
	
	@NotEmpty(message = "homeProvince missing.")
	private String homeProvince;// 身份证（省）
	
	@NotEmpty(message = "homeCity missing.")
	private String homeCity;// 身份证（市）
	
	@NotEmpty(message = "homeAddress missing.")
	private String homeAddress;// 身份证（详细地址）
	
	@NotEmpty(message = "estateType missing.")
	@Pattern(regexp="1|2|3|4|5|6|7",message="estateType error,only 【1|2|3|4|5|6|7】")
	private String estateType;// 房产类型
	
	@NotEmpty(message = "estateProvince missing.")
	private String estateProvince;// 现居住地址（省）
	
	@NotEmpty(message = "estateCity missing.")
	private String estateCity;// 现居住地址（市）
	
	@NotEmpty(message = "estateAddress missing.")
	private String estateAddress;// 现居住地址详细地址
	
	@NotEmpty(message = "work missing.")
	@Pattern(regexp="1|2",message="work error,only 【1|2】")
	private String work; //有无工作
	
	@NotEmpty(message = "empName missing.",groups={Work.class})
	private String empName; //工作单位名称
	
	@NotEmpty(message = "workYear missing.",groups={Work.class})
	private String workYear;// 本单位工作年限
	
	private String empProvince;// 单位地址（省）
	
	private String empCity;// 单位地址（市）
	
	@NotEmpty(message = "empAddress missing.",groups={Work.class})
	private String empAddress;// 单位地址
	
	@NotEmpty(message = "empType missing.",groups={Work.class})
	@Pattern(regexp="1|2|3|4|5|6|7|8",message="empType error,only 【1|2|3|4|5|6|7|8】")
	private String empType;// 企业性质
	
	@NotEmpty(message = "empOccupation missing.",groups={Work.class})
	@Pattern(regexp="1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|98|99",message="empOccupation error,only 【1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|98|99】")
	private String empOccupation;// 职业
	
	@NotEmpty(message = "familyInCome missing.")
	private String familyInCome;// 每月家庭净收入
	
	@NotEmpty(message = "familyExpend missing.")
	private String familyExpend;// 月平均支出
	
	@NotEmpty(message = "isFirstBuy missing.")
	@Pattern(regexp="1|2",message="isFirstBuy error,only 【1|2】")
	private String isFirstBuy;// 是否为家庭首次购车
	
	@NotEmpty(message = "hascarloan missing.",groups = {FirstBuy.class})
	private String hascarloan;// 是否有车贷
	
	private String oencarbrand;// 现有车辆车系
	
	@NotEmpty(message = "driveType missing.")
	@Pattern(regexp="A1|A2|A3|B1|B2|C1|C2|C3|C4",message="driveType error,only 【A1|A2|A3|B1|B2|C1|C2|C3|C4】")
	private String driveType;// 准驾车型
	
	@NotEmpty(message = "bankCard missing.")
	private String bankCard;// 银行卡号
	
	@NotEmpty(message = "buyPurpose missing.")
	@Pattern(regexp="1|2",message="buyPurpose error,only 【1|2】")
	private String buyPurpose;// 购车目的
	
	private String comment;// 备注
	
	@NotEmpty(message = "isSponsor missing.")
	@Pattern(regexp="1|2",message="isSponsor error,only 【1|2】")
	private String isSponsor;// 是否有担保人
	
	@NotEmpty(message = "parentName missing." ,groups = {Parent.class})
	private String parentName;// 直系亲属姓名
	
	@NotEmpty(message = "parentCellphone missing." ,groups = {Parent.class})
	private String parentCellphone;// 直系亲属手机号
	
	@NotEmpty(message = "spouseName missing." ,groups = {Spouse.class})
	private String spouseName;// 配偶姓名
	
	@NotEmpty(message = "spouseCellphone missing." ,groups = {Spouse.class})
	private String spouseCellphone;// 配偶手机号
	
	@NotEmpty(message = "spouseIDtype missing." ,groups = {Spouse.class})
	@Pattern(regexp="1",message="spouseIDtype error,only 【1】")
	private String spouseIDtype;// 配偶证件种类
	
	@NotEmpty(message = "spouseID missing." ,groups = {Spouse.class})
	private String spouseID;// 配偶证件号码
	
	private String emgconName;// 紧急联系人姓名1
	
	@NotEmpty(message = "emgconRelation missing.")
	@Pattern(regexp="1|2|3|4",message="emgconRelation error,only 【1|2|3|4】")
	private String emgconRelation;// 与承租人关系1
	
	@NotEmpty(message = "emgconCellphone missing.")
	private String emgconCellphone;// 紧急联系人手机号1
	
	@NotEmpty(message = "emgconName2 missing.")
	private String emgconName2;// 紧急联系人姓名2
	
	@NotEmpty(message = "emgconRelation2 missing.")
	@Pattern(regexp="1|2|3|4",message="emgconRelation2 error,only 【1|2|3|4】")
	private String emgconRelation2;// 与承租人关系2
	
	@NotEmpty(message = "emgconCellphone2 missing.")
	private String emgconCellphone2;// 紧急联系人手机号2
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getCellphone() {
		return cellphone;
	}
	public void setCellphone(String cellphone) {
		this.cellphone = cellphone;
	}
	public String getIDtype() {
		return this.IDtype;
	}
	public void setIDtype(String IDtype) {
		this.IDtype = IDtype;
	}
	public String getIDnum() {
		return IDnum;
	}
	public void setIDnum(String IDnum) {
		this.IDnum = IDnum;
	}
	public String getBirthday() {
		return birthday;
	}
	public void setBirthday(String birthday) {
		this.birthday = birthday;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public String getMarriage() {
		return marriage;
	}
	public void setMarriage(String marriage) {
		this.marriage = marriage;
	}
	public String getEducation() {
		return education;
	}
	public void setEducation(String education) {
		this.education = education;
	}
	public String getHomeProvince() {
		return homeProvince;
	}
	public void setHomeProvince(String homeProvince) {
		this.homeProvince = homeProvince;
	}
	public String getHomeCity() {
		return homeCity;
	}
	public void setHomeCity(String homeCity) {
		this.homeCity = homeCity;
	}
	public String getHomeAddress() {
		return homeAddress;
	}
	public void setHomeAddress(String homeAddress) {
		this.homeAddress = homeAddress;
	}
	public String getEstateType() {
		return estateType;
	}
	public void setEstateType(String estateType) {
		this.estateType = estateType;
	}
	public String getEstateProvince() {
		return estateProvince;
	}
	public void setEstateProvince(String estateProvince) {
		this.estateProvince = estateProvince;
	}
	public String getEstateCity() {
		return estateCity;
	}
	public void setEstateCity(String estateCity) {
		this.estateCity = estateCity;
	}
	public String getEstateAddress() {
		return estateAddress;
	}
	public void setEstateAddress(String estateAddress) {
		this.estateAddress = estateAddress;
	}
	public String getWork() {
		return work;
	}
	public void setWork(String work) {
		this.work = work;
	}
	public String getEmpName() {
		return empName;
	}
	public void setEmpName(String empName) {
		this.empName = empName;
	}
	public String getWorkYear() {
		return workYear;
	}
	public void setWorkYear(String workYear) {
		this.workYear = workYear;
	}
	public String getEmpProvince() {
		return empProvince;
	}
	public void setEmpProvince(String empProvince) {
		this.empProvince = empProvince;
	}
	public String getEmpCity() {
		return empCity;
	}
	public void setEmpCity(String empCity) {
		this.empCity = empCity;
	}
	public String getEmpAddress() {
		return empAddress;
	}
	public void setEmpAddress(String empAddress) {
		this.empAddress = empAddress;
	}
	public String getEmpType() {
		return empType;
	}
	public void setEmpType(String empType) {
		this.empType = empType;
	}
	public String getEmpOccupation() {
		return empOccupation;
	}
	public void setEmpOccupation(String empOccupation) {
		this.empOccupation = empOccupation;
	}
	public String getFamilyInCome() {
		return familyInCome;
	}
	public void setFamilyInCome(String familyInCome) {
		this.familyInCome = familyInCome;
	}
	public String getFamilyExpend() {
		return familyExpend;
	}
	public void setFamilyExpend(String familyExpend) {
		this.familyExpend = familyExpend;
	}
	public String getIsFirstBuy() {
		return isFirstBuy;
	}
	public void setIsFirstBuy(String isFirstBuy) {
		this.isFirstBuy = isFirstBuy;
	}
	public String getHascarloan() {
		return hascarloan;
	}
	public void setHascarloan(String hascarloan) {
		this.hascarloan = hascarloan;
	}
	public String getOencarbrand() {
		return oencarbrand;
	}
	public void setOencarbrand(String oencarbrand) {
		this.oencarbrand = oencarbrand;
	}
	public String getDriveType() {
		return driveType;
	}
	public void setDriveType(String driveType) {
		this.driveType = driveType;
	}
	public String getBankCard() {
		return bankCard;
	}
	public void setBankCard(String bankCard) {
		this.bankCard = bankCard;
	}
	public String getBuyPurpose() {
		return buyPurpose;
	}
	public void setBuyPurpose(String buyPurpose) {
		this.buyPurpose = buyPurpose;
	}
	public String getComment() {
		return comment;
	}
	public void setComment(String comment) {
		this.comment = comment;
	}
	public String getIsSponsor() {
		return isSponsor;
	}
	public void setIsSponsor(String isSponsor) {
		this.isSponsor = isSponsor;
	}
	public String getParentName() {
		return parentName;
	}
	public void setParentName(String parentName) {
		this.parentName = parentName;
	}
	public String getParentCellphone() {
		return parentCellphone;
	}
	public void setParentCellphone(String parentCellphone) {
		this.parentCellphone = parentCellphone;
	}
	public String getSpouseName() {
		return spouseName;
	}
	public void setSpouseName(String spouseName) {
		this.spouseName = spouseName;
	}
	public String getSpouseCellphone() {
		return spouseCellphone;
	}
	public void setSpouseCellphone(String spouseCellphone) {
		this.spouseCellphone = spouseCellphone;
	}
	public String getSpouseIDtype() {
		return spouseIDtype;
	}
	public void setSpouseIDtype(String spouseIDtype) {
		this.spouseIDtype = spouseIDtype;
	}
	public String getSpouseID() {
		return spouseID;
	}
	public void setSpouseID(String spouseID) {
		this.spouseID = spouseID;
	}
	public String getEmgconName() {
		return emgconName;
	}
	public void setEmgconName(String emgconName) {
		this.emgconName = emgconName;
	}
	public String getEmgconRelation() {
		return emgconRelation;
	}
	public void setEmgconRelation(String emgconRelation) {
		this.emgconRelation = emgconRelation;
	}
	public String getEmgconCellphone() {
		return emgconCellphone;
	}
	public void setEmgconCellphone(String emgconCellphone) {
		this.emgconCellphone = emgconCellphone;
	}
	public String getEmgconName2() {
		return emgconName2;
	}
	public void setEmgconName2(String emgconName2) {
		this.emgconName2 = emgconName2;
	}
	public String getEmgconRelation2() {
		return emgconRelation2;
	}
	public void setEmgconRelation2(String emgconRelation2) {
		this.emgconRelation2 = emgconRelation2;
	}
	public String getEmgconCellphone2() {
		return emgconCellphone2;
	}
	public void setEmgconCellphone2(String emgconCellphone2) {
		this.emgconCellphone2 = emgconCellphone2;
	}
	
	public interface Spouse{
		
	}
	
    public interface Parent{
		
	}
    
    public interface Work{
    	
    }
    
    public interface FirstBuy{
    	
    }
}
